// 简单易懂 差分

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int a[N], d[N];
signed main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++)
    cin >> a[i];

  // 先进行差分操作
  for (int i = 1; i <= n; i++) {
    int del = min(a[i], n - i);
    a[i] -= del;
    d[i + 1] += 1;
    d[i + 1 + del] -= 1;
  }

  // 独立循环计算差分数组的前缀和
  for (int i = 1; i <= n; i++) {
    d[i] += d[i - 1];
  }

  // 输出时直接加上差分数组的影响
  for (int i = 1; i <= n; i++) {
    cout << a[i] + d[i] << ' ';
  }
  cout << endl;
  return 0;
}